$(document).ready(function(){
	$("#alertFalloNombreEmail").hide();
	$("#alertGracias").hide();
    $("#botonEnviarContacto").click(onClickEnviarEncuesta);
    $("#emailContacto").keyup(esMailCorrecto);
    $("#nombreContacto").keyup(esNombreCorrecto);
    $("#mensajeContacto").keyup(esMensajeCorrecto);
});

function onClickEnviarEncuesta(){

	if( esNombreCorrecto() & esMailCorrecto() & esMensajeCorrecto()){
		$("#alertFalloNombreEmail").hide();
		$("#botonEnviarContacto").button('loading');
		$("#alertGracias").show();
		enviarFormContacto();
	}else{
		$("#alertFalloNombreEmail").show();
	}
}

function enviarFormContacto () {
	datosEnvioContacto = {};
	// Datos de Contacto
	datosEnvioContacto.nombre = $("#nombreContacto").val();
	datosEnvioContacto.email = $("#emailContacto").val();
	datosEnvioContacto.asunto = $("#asuntoContacto").val();
	datosEnvioContacto.mensaje = $("#mensajeContacto").val();
	
	//console.log(datosEnvioContacto);

	// JSON.stringfy(obj) transforma un objeto a una cadena de texto
	// JSON.parse(cadena) transforma una cadena en un objeto
	// Realizamos la peticion POST con el JSON de parametro
	$.post("./php/enviarFormularioContacto.php", {datosFormContacto: JSON.stringify(datosEnvioContacto)}, callbackFormContactoExito).fail(failPostContacto);
}


function callbackFormContactoExito(data) {
	$("#botonEnviarContacto").button('reset');
	//console.log(data);
}

function failPostContacto(){
	//console.log("Fallo al enviar al servidor");
	$("#botonEnviarContacto").button('reset');
}

function esMailCorrecto(){
	email = $("#emailContacto").val();
	if(!validarEmail(email)){
		$("#grupoEmailContacto").addClass("has-error");
		$("#alertFalloNombreEmail").show();
		return false;
	}else{
		$("#grupoEmailContacto").removeClass("has-error");
		$("#alertFalloNombreEmail").hide();
		return true;
	}
}

function esNombreCorrecto(){
	nombre = $("#nombreContacto").val();
	if(nombre.length == 0){
		$("#grupoNombreContacto").addClass("has-error");
		$("#alertFalloNombreEmail").show();
		return false;
	}else{
		$("#grupoNombreContacto").removeClass("has-error");
		$("#alertFalloNombreEmail").hide();
		return true;
	}
}

function validarEmail(email){
	validar = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);	
	if(validar.test(email)){
		return true;
	}else{
		return false;
	}
}

function esMensajeCorrecto(){
	mensaje = $("#mensajeContacto").val();
	if(mensaje.length == 0){
		$("#grupoMensajeContacto").addClass("has-error");
		$("#alertFalloNombreEmail").show();
		return false;
	}else{
		$("#grupoMensajeContacto").removeClass("has-error");
		$("#alertFalloNombreEmail").hide();
		return true;
	}
}
